package com.example.demo.controller;

import com.example.demo.model.Student;
import com.example.demo.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("student")
public class StudentController {

    @Autowired
    private StudentService studentService;
//    private static List<Student> studentList = new ArrayList<>();
//    static {
//        Student s1 = new Student();
//        s1.setId(1);
//        s1.setName("Tom");
//        studentList.add(s1);
//        Student s2 = new Student();
//        s2.setId(2);
//        s2.setName("Jerry");
//        studentList.add(s2);
//    }
    @RequestMapping("list")
    public String list(ModelMap modelMap) {
        modelMap.put("studentList", studentService.list());
        return "student/list";
    }

    //search方法
    @RequestMapping("search")
    public String search(Student s, ModelMap modelMap) {
        modelMap.put("studentList", studentService.search(s));
        return "student/list";

    }
    @RequestMapping("delete/{id}")
    public String delete(@PathVariable Integer id) {
        studentService.delete(id);
        return "redirect:/student/list";
    }
    @RequestMapping("save")
    public String save(Student s) {
        try {
            studentService.save(s);
        } catch (Exception e) {
            return "error";
        }
        return "redirect:/student/list";
    }

    @RequestMapping("edit/{id}")
    public String edit(@PathVariable Integer id, ModelMap map) {
        //Student s = studentList.get(id - 1);
        map.put("student", studentService.get(id));
        return "student/edit";

    }

    @RequestMapping("update")
        public String update(Student s) {
        try {
            studentService.update(s);
        } catch (Exception e) {
            return "error";
        }
        return "redirect:/student/list";
    }
}
